package naughtydog.threads.concurrency;

import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

public class ThreadsTest02 {
	
	public static void main(String[] args) {
		
		IModel theModel = new TheModel();
		Thread intsGenerator = new Thread(new IntsGenerator(theModel));	
		Thread longGenerator = new Thread(new LongGenerator(theModel));
		Timer testTimer = new Timer();	//Timer che "legge" dal modello a frequenza fissata (SERVE SOLO PER TEST, non ha nessun altro senso)
				
		testTimer.scheduleAtFixedRate(new TimerTask() {
			public void run() {
				for (Integer aInt : (ArrayList<Integer>)theModel.getInts()) {		//il problema sembra essere risolto usando sleep nel generatore, 
					System.out.println(aInt);										//invece del timer.. boh. (vedere ThreadsTest03)
				}
				System.out.println("The long: " + theModel.getaLong());
			}
		}, 0, 1000);
		
		longGenerator.start();
		intsGenerator.start();		
		
		//Date le frequenze di lettura e di generazione, dovremmo vedere il long ongi due numeri generati. Sembra andare molto bene..
	
		
		
	}

}
